﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CapaNegocio;
using CapaDTO;


namespace CapaGUI
{
    public partial class MantenedorCliente : Form

        
    {
        String resultado;
        Error errorAux = new Error();

        public MantenedorCliente()
        {
            InitializeComponent();
        }

        private void btoModificarCliente_Click(object sender, EventArgs e)
        {
           NegocioCliente negocioModificar = new NegocioCliente();
           int error = 0;
           Cliente nuevo = new Cliente();
           try
           {
                if (txtTelefono.Text.Length == 0)
                {
                    error = 1;
                    MessageBox.Show("Debe Ingresar Número de Teléfono para modificar", "Mensaje Sistema");
                }
                else 
                {
                    nuevo.Telefono = Int32.Parse(txtTelefono.Text);
                }
            }
            catch
            {
                Console.WriteLine("Telefono no valido");
            }
           nuevo.Nombre = txtNombre.Text;
           nuevo.Apellido = txtApellido.Text;
           nuevo.Direccion = txtDireccion.Text;
           nuevo.Email = txtEmail.Text;
            if (error == 0)
            {
                errorAux = negocioModificar.modificarCliente(nuevo);
                if (errorAux.CodError != 0)
                {
                    MessageBox.Show("Se detectó un error al modificar: \n\n " + errorAux.DescError, "Código de Error: " + errorAux.CodError);
                }
                else
                {
                    MessageBox.Show("Se ha modificado correctamente", "Mensaje Sistema");
                }
            }
        }

        private void btoIngresarCliente_Click(object sender, EventArgs e)
        {
            NegocioCliente negocioInsert = new NegocioCliente();
            int error = 0;
            Cliente nuevo = new Cliente();
            try
            {
                 /*Verificamos si el campo teléfono está vacio, si lo está asignamos error = 1*/
                if (txtTelefono.Text.Length == 0)
                {
                    error = 1;
                    MessageBox.Show("Debe Ingresar Número de Teléfono para insertar", "Mensaje Sistema");
                }
                else 
                {
                    nuevo.Telefono = Int32.Parse(txtTelefono.Text);
                }
            }
            catch
            {
                Console.WriteLine("Telefono no valido");
            }
            /*Definimos los campos a insertar en la variable nuevo [Cliente]*/
            nuevo.Nombre = txtNombre.Text;
            nuevo.Apellido = txtApellido.Text;
            nuevo.Direccion = txtDireccion.Text;
            nuevo.Email = txtEmail.Text;
            /*Verificamos si tenemos error = 0 para insertar el cliente*/
            if(error == 0){
               errorAux = negocioInsert.insertarCliente(nuevo);
               /*Verificamos si hubo algún error al insertar y si lo hay lo desplegamos en pantalla*/
               if (errorAux.CodError != 0)
               {
                   MessageBox.Show("Se detectó un error al insertar: \n\n " + errorAux.DescError, "Código de Error: " + errorAux.CodError);
               }
               else 
               {
                   MessageBox.Show("Se ha insertado correctamente", "Mensaje Sistema");
               }
            }
        }

        private void btoSalir_Click(object sender, EventArgs e)
        {
            this.Dispose();
            System.GC.Collect();

        }

            private void btoConsultar_Click(object sender, EventArgs e)
        {
            if (this.txtTelefono.Text.Length == 0)
            {
                MessageBox.Show("Debe Ingresar Número de Teléfono", "Mensaje Sistema");
            }
            else
            {
                NegocioCliente auxNegCliente = new NegocioCliente();
                Cliente auxCliente = new Cliente();
                auxCliente = auxNegCliente.buscarCliente(Convert.ToInt32(this.txtTelefono.Text));

                resultado = auxCliente.Resultado;

                if (auxCliente.Resultado == "1")
                {
                    this.txtNombre.Text = auxCliente.Nombre.ToString();
                    this.txtApellido.Text = auxCliente.Apellido.ToString();
                    this.txtDireccion.Text = auxCliente.Direccion.ToString();
                    this.txtEmail.Text = auxCliente.Email.ToString();
                }
                else {
                    MessageBox.Show("No se encontraron datos con el teléfono ingresado", "Mensaje Sistema");
                }
            }
        }

            private void btoEliminarCliente_Click(object sender, EventArgs e)
            {
                NegocioCliente negocioEliminar = new NegocioCliente();
                int error = 0;
                Cliente nuevo = new Cliente();
                Cliente auxCliente = new Cliente();
                try
                {
                    /*Verificamos si el campo teléfono está vacio, si lo está asignamos error = 1*/
                    if (txtTelefono.Text.Length == 0)
                    {
                        error = 1;
                        MessageBox.Show("Debe Ingresar Número de Teléfono para eliminar", "Mensaje Sistema");
                    }
                    else
                    {
                        nuevo.Telefono = Int32.Parse(txtTelefono.Text);
                    }
                }
                catch
                {
                    Console.WriteLine("Telefono no valido");
                }
                /*Verificamos si tenemos error = 0 para eliminar el cliente*/
                if (error == 0)
                {
                    auxCliente = negocioEliminar.buscarCliente(Convert.ToInt32(this.txtTelefono.Text));
                    resultado = auxCliente.Resultado;
                    if (auxCliente.Resultado != "1")
                    {
                        MessageBox.Show("No se encontró ese teléfono en la BD, no se puede eliminar", "Mensaje Sistema");
                    }
                    else
                    {
                        errorAux = negocioEliminar.eliminarCliente(nuevo);
                        /*Verificamos si occurió algún error al eliminar cliente*/
                        if (errorAux.CodError != 0)
                        {
                            MessageBox.Show("Se detectó un error al modificar: \n\n " + errorAux.DescError, "Código de Error: " + errorAux.CodError);
                        }
                        else
                        {
                            /*Vaciamos los txt al eliminar el registro satisfactoriamente*/
                            txtNombre.Text = "";
                            txtApellido.Text = "";
                            txtDireccion.Text = "";
                            txtEmail.Text = "";
                            MessageBox.Show("Se ha eliminado correctamente", "Mensaje Sistema");
                        }
                    }
                }
            }

            private void groupBox1_Enter(object sender, EventArgs e)
            {

            }

            private void MantenedorCliente_Load(object sender, EventArgs e)
            {

            }

            private void txtTelefono_TextChanged(object sender, EventArgs e)
            {

            }
        }
        }
    

